@奈良山
2年前 提问
1个回答
微服务服务访问失败常见的原因有哪些
房乐
2年前
微服务服务访问失败常见的原因有以下这些:
硬件失败:硬件失败不常见,但一旦出现问题通常都是灾难性。这里的硬件失败不仅包括机房失火、机器损害等不可抗力所导致的、发生概率极低的硬件不可用,更多的是指由于日志文件过大导致硬盘无法写入、网络路由无效等可以通过调整硬件状态进行恢复的失败场景。
分布式环境的固有原因:明确在分布式系统中由于网络传输的三态性、异构系统集成等因素会导致远程过程调用发生异常情况。微服务架构作为分布式系统的一种延伸,同样也存在类似的问题。这些问题构成了服务访问失败的原因,我们无法完全消除这些原因,只能在设计和实现时加以预防,以及在发生时降低其所造成的影响。
服务自身失败:微服务本身当然也可能发生失败,由于设计实现上考虑不周、代码中存在的缺陷等因素所造成的服务发生失败的场景也不少见,这些场景需要我们深入分析并找到解决问题的方法。
服务依赖失败:除了服务自身失败,服务访问失败的另一种表现形式是服务依赖失败。服务依赖失败较之服务自身失败而言其影响更大,也更加难以发现和处理。服务依赖失败是我们在设计微服务架构中所需要重点考虑的失败原因,因为服务依赖失败会造成失败扩散,从而形成服务访问的雪崩效应。
服务访问雪崩效应:服务雪崩效应的产生是一种扩散效应,我们知道从角色出发,服务可以分为提供者(Provider)和消费者(Consumer),即首先提供者A服务发生不可用,然后消费者B服务重试加大流量,最后导致B服务自身也不可用。